package com.demandbreakdown.xiyun.service;

/**
 * 安全控制服务接口
 *
 * @author poxz
 */
public interface SecurityControlService {

    /**
     * 检查IP请求频率限制
     *
     * @param clientIp  客户端IP地址
     * @param operation 操作类型
     * @return boolean
     */
    boolean checkIpRateLimit(String clientIp, String operation);

    /**
     * 检查邮箱验证码发送频率是否超限
     *
     * @param email 邮箱地址
     * @return true-已超限（不能发送），false-未超限（可以发送）
     */
    boolean checkEmailCaptchaLimit(String email);

    /**
     * 记录邮箱验证码发送
     *
     * @param email 邮箱地址
     */
    void recordEmailCaptchaSent(String email);

    /**
     * 检查邀请码是否过期
     *
     * @param spaceId    空间ID
     * @param inviteCode 邀请码
     * @return boolean
     */
    boolean isInviteCodeExpired(Long spaceId, String inviteCode);

    /**
     * 获取客户端真实IP地址
     *
     * @return String
     */
    String getClientRealIp();
}
